Definition (PCP system, PCP verifier)

Define a (r(n),q(n))(r(n), q(n))-PCP verifier (PCP system) on input string x∈{0,1}nx \in \{0,1\}^n, for language LL and q,r:ℕ→ℕq,r : \mathbb{N} \to \mathbb{N}:

  • prover PP writes down proof π\pi
    • where π∈{0,1}∗\pi \in \{0,1\}^* is a poly⁡(n)\operatorname{poly}(n)-bit-length proof, of length at most q(n)2r(n)q(n) 2^{r(n)}
  • verifier VV looks at xx and does polynomial time deterministic computation, then uses at most r(n)r(n) bits of randomness (random coins) to choose (nonadaptive queries) q(n)q(n) random locations in the proof π\pi. VV also uses these random bits to produce a deterministic test (predicate) ϕ\phi on q(n)q(n) bits
  • VV reads bits in the q(n)q(n) randomly chosen locations from the proof and does test ϕ\phi on them, accepting (11) or rejecting (00), where Vπ(x)V^\pi(x) is the random variable representing VV's output on input xx with random access to π\pi
  • completeness: if x∈Lx \in L then PP can write a proof that VV accepts w.p. 11, i.e. ∃π∈{0,1}∗\exists \pi \in \{0,1\}^* such that Pr⁡[Vπ(x)=1]=1\Pr[V^\pi(x) = 1] = 1. Call string π\pi is the correct proof for xx.
  • soundness: for every x∉Lx \notin L, no matter what proof PP writes, VV accepts w.p. at most 1/21/2, i.e. ∀π∈{0,1}∗\forall \pi \in \{0,1\}^*, Pr⁡[Vπ(x)=1]≤12\Pr[V^\pi(x) = 1] \leq \frac{1}{2}

(alternatively, may define completeness and soundness using parameters cc and ss for bounds of acceptance respectively, thus forming class PCPc,s(r(n),q(n))\text{PCP}_{c,s}(r(n),q(n)) from the class of languages for which there exists a PCP verifier with those requisite completeness and soundness conditions; standard parameters are indeed c=1c=1 and s=12s = \frac{1}{2})

PCP Theorem [Arora-Safra 1998; Arora-Lund-Motwani-Sudan-Szegedy 1998]

All languages L⊆L \subseteq NP have a highly efficient PCP verifier,

i.e. there is a universal constant q>0q > 0 such that

𝐍𝐏=𝐏𝐂𝐏(log⁡n,1)\mathbf{NP} = \mathbf{PCP}(\log n,1)

(or 𝐍𝐏=𝐏𝐂𝐏(O(log⁡n),O(1))\mathbf{NP} = \mathbf{PCP}(O(\log n), O(1)) )

Theorem (scaled-up PCP)

Let 𝐏𝐂𝐏(poly⁡(n),1)=∪c≥1𝐏𝐂𝐏(nc,1)\mathbf{PCP}(\operatorname{poly}(n),1) = \cup_{c \geq 1}\mathbf{PCP}(n^c,1). Then,

𝐏𝐂𝐏(poly⁡(n),1)=𝐍𝐄𝐗𝐏\mathbf{PCP}(\operatorname{poly}(n),1)=\mathbf{NEXP}

(NEXP)

Notes

  • NP == dIP =𝐏𝐂𝐏(O(log⁡n),O(1))⊆= \mathbf{PCP}(O(\log n), O(1)) \subseteq IP == PSPACE
  • as the verifier is probabilistic, can give wrong answers

See also


References

  1. https://courses.cs.washington.edu/courses/cse533/05au/pcp-theorem.pdf
  2. https://www.cs.utexas.edu/~danama/XRDS.pdf
  3. https://en.wikipedia.org/wiki/PCP_theorem
  4. https://en.wikipedia.org/wiki/Probabilistically_checkable_proof
  5. S. Arora, B. Barak. Computational Complexity: A Modern Approach, Cambridge University Press, 2009, pp. 240-241.
  6. S. Arora and S. Safra. "Probabilistic checking of proofs: A new characterization of NP". Journal of the ACM (JACM), 45(1):70–122, 1998. https://doi.org/10.1145/273865.273901
  7. S. Arora, C. Lund, R. Motwani, M. Sudan, and M. Szegedy. "Proof verification and the hardness of approximation problems". Journal of the ACM (JACM), 45(3):501–555, 1998. https://doi.org/10.1145/278298.278306
  8. https://people.seas.harvard.edu/~cs125/fall16/lec22.pdf
  9. https://www.quantamagazine.org/computer-scientists-combine-two-beautiful-proof-methods-20241004/
  10. https://users.cs.duke.edu/~reif/courses/complectures/Miltersen/Probabilistically Checkable Proofs.pdf